Configuration File Parsing
Kirish
Tizim va dastur konfiguratsiyasini avtomatlashtirishda JSON va YAML formatlari eng ko‘p ishlatiladi. Python’da bu fayllarni o‘qish, tahrirlash va yozish uchun maxsus kutubxonalar mavjud: json va PyYAML.
JSON faylini o‘qish va yozish
1. JSON faylini o‘qish
import json
with open('config.json') as f:
config = json.load(f)
print(config)
print("Host:", config.get('host'))
print("Port:", config.get('port'))
2. JSON fayliga yozish
import json
data = {'host': 'localhost', 'port': 8080, 'debug': True}
with open('config.json', 'w') as f:
json.dump(data, f, indent=4)
3. JSON faylini tahrirlash
import json
with open('config.json') as f:
config = json.load(f)
config['debug'] = False
with open('config.json', 'w') as f:
json.dump(config, f, indent=4)
YAML faylini o‘qish va yozish
1. PyYAML kutubxonasini o‘rnatish
pip install pyyaml
2. YAML faylini o‘qish
import yaml
with open('config.yaml') as f:
config = yaml.safe_load(f)
print(config)
print("Host:", config.get('host'))
print("Port:", config.get('port'))
3. YAML fayliga yozish
import yaml
data = {'host': 'localhost', 'port': 8080, 'debug': True}
with open('config.yaml', 'w') as f:
yaml.dump(data, f)
4. YAML faylini tahrirlash
import yaml
with open('config.yaml') as f:
config = yaml.safe_load(f)
config['debug'] = False
with open('config.yaml', 'w') as f:
yaml.dump(config, f)
Amaliy misollar
1. Konfiguratsiyadan parametrlarni o‘qib, ulardan foydalanish
import json
with open('config.json') as f:
config = json.load(f)
if config.get('debug'):
print("Debug rejimi yoqilgan!")
else:
print("Debug rejimi o‘chirilgan!")
2. YAML fayldan ro‘yxat va lug‘atlarni o‘qish
import yaml
with open('services.yaml') as f:
services = yaml.safe_load(f)
for service in services['apps']:
print(service['name'], service['port'])
services.yaml misoli:
apps:
- name: web
port: 80
- name: db
port: 5432
Xulosa
Python’da JSON va YAML konfiguratsiya fayllarini o‘qish, tahrirlash va yozish juda oson. Bu texnikalar yordamida tizim va dastur sozlamalarini avtomatlashtirish, monitoring va